let some = {
    a: 100
}
/**
 * 开始只需要明白：
 * Object.create(some) 会创建一个对象，并把它的 prototype 关联到 some 上
 * @type {{a: number}}
 */
let myObject = Object.create(some)

console.log(myObject.a)

Object.defineProperty(myObject, "b", {
    enumerable: true,
    value: 200
})

Object.defineProperty(some, "c", {
    enumerable: false,
    value: 300
})

/**
 * for in 循环会遍历 本对象、和原型链所有 上 enumerable = true 的属性
 */
for (let myObjectKey in myObject) {
    console.log(myObjectKey, myObject[myObjectKey])
}

console.log("myObject 及其 原型链中存在 c 属性（无论是否可被枚举）？", "c" in myObject)

const luo = Object.create(some, {
    name: {
        value: '罗俊华',
        enumerable: true
    },
    age: {
        value: 18
    }
})


console.log('a 属性存在于原型链中 ', luo.a,luo.hasOwnProperty("a"));
console.log(luo.hasOwnProperty("name"));
console.log(luo.hasOwnProperty("age"));
